// 引入公用的自定义函数
var $ = require('../../utils/js.js');
var img_src = $.img_src;

Page({
  // 页面的初始数据
  data: {
    // 图片路径的公用部分
    img_src: img_src,

    // 是否在编辑状态
    bian_ji: false,

    // 用户是否登录
    deng_lu: false,
    // 是否显示登录组件
    login_show: false,
    // 登录组件的提示内容
    login_title: "",

    // 获取到的购物车列表
    list_data: [],

    // 是否全选
    quan_xuan: false,
    // 选中的数量
    xuan_zhong_number: 0,

    // 选中商品的总价
    money: 0,
  },
  // 生命周期函数--监听页面加载
  onLoad: function(options) {

  },
  // 生命周期函数--监听页面初次渲染完成
  onReady: function() {

  },
  // 生命周期函数--监听页面显示
  onShow: function() {
    // 判断用户是否登录的函数
    this.deng_lu_fun();
    this.setData({
      quan_xuan: false,
      xuan_zhong_number: 0,
    })
  },
  // 自定义函数   开始
  // 判断用户是否登录的函数
  deng_lu_fun() {
    var deng_lu = $.deng_lu();
    this.setData({
      deng_lu: deng_lu
    })
    if (deng_lu) {
      // 获取用户的购物车
      this.get_shop_cart();
    } else {
      this.setData({
        login_title: "购物车功能需要授权才能使用，请授权后再试。",
        login_show: true,
      })
    }
  },
  // 获取用户数据
  login_fun(e) {
    // 判断用户是否登录的函数
    this.deng_lu_fun();
  },
  // 获取用户的购物车
  get_shop_cart() {
    $.ajax_get({
      url: "/shopapi/cart/header_cart_list",
      success: (res) => {
        var list_data = res.data.data;
        if (list_data) {
          list_data.forEach((obj, index) => {
            if (obj.goods_num > obj.store_count) {
              list_data[index].goods_num = obj.store_count
            }
          })
          this.setData({
            list_data: list_data
          })
          // 获取选中商品的总价
          this.get_money();
        }
        console.log("购物车数据", list_data);
      },
    })
  },
  // 点击全选
  quan_xuan_fun() {
    // 获取当前全选的状态
    var quan_xuan = this.data.quan_xuan;
    // 获取列表数据
    var list_data = this.data.list_data;
    // 遍历每个商品设置选中状态
    list_data.forEach((obj) => {
      obj.xuan_zhong = !quan_xuan;
    })
    // 选中的数量默认为商品的数量
    var xuan_zhong_number = list_data.length;
    // 如果是取消全选，选中的数量为0
    if (quan_xuan) {
      xuan_zhong_number = 0;
    }
    this.setData({
      xuan_zhong_number: xuan_zhong_number,
      quan_xuan: !quan_xuan,
      list_data: list_data,
    })
    // 获取选中商品的总价
    this.get_money();
  },
  // 选择函数
  xuan_ze_fun(e) {
    // 获取商品下标
    var index = $.data(e, "index");
    // 获取列表数据
    var list_data = this.data.list_data;
    // 获取商品数据
    var data = list_data[index];
    // 获取商品当前的选中状态
    var br = data.xuan_zhong;
    list_data[index].xuan_zhong = !br;
    // 获取选中的数量
    var xuan_zhong_number = this.data.xuan_zhong_number;
    if (!br) { // 选中
      xuan_zhong_number += 1;
    } else { // 不选中
      xuan_zhong_number -= 1;
    }
    // 默认没有全部选中
    var quan_xuan = false;
    // 如果选中的数量等于商品的数量
    if (xuan_zhong_number && (xuan_zhong_number == list_data.length)) {
      quan_xuan = true;
    }
    this.setData({
      xuan_zhong_number: xuan_zhong_number,
      list_data: list_data,
      quan_xuan: quan_xuan,
    })
    // 获取选中商品的总价
    this.get_money();
  },
  // 获取选中商品的总价
  get_money() {
    // 获取列表数据
    var list_data = this.data.list_data;
    var money = 0;
    // 遍历每个商品
    list_data.forEach((obj) => {
      if (obj.xuan_zhong) {
        money += obj.goods_price * obj.goods_num;
      }
    })
    // 更新价格
    this.setData({
      money: money,
    })
  },
  // 点击编辑时触发
  bian_ji_fun() {
    this.setData({
      bian_ji: true,
    })
  },
  // 点击完成时触发
  wan_cheng_fun() {
    this.setData({
      bian_ji: false,
    })
  },
  // 购买数量-1
  jian_fun(e) {
    var value = e.detail.value;
    var index = $.data(e, "index");
    // 购买数量变化时触发
    this.buy_number_fun(value, index);
  },
  // 输入购买数量
  input_fun(e) {
    var value = e.detail.value;
    var index = $.data(e, "index");
    // 购买数量变化时触发
    this.buy_number_fun(value, index);
  },
  // 购买数量+1
  jia_fun(e) {
    var value = e.detail.value;
    var index = $.data(e, "index");
    // 购买数量变化时触发
    this.buy_number_fun(value, index);
  },
  // 购买数量变化时触发
  buy_number_fun(value, index) {
    var list_data = this.data.list_data;
    list_data[index].goods_num = value;
    this.setData({
      list_data: list_data,
    })
    // 获取选中商品的总价
    this.get_money();

    return false;
    // 更新购买数量
    var data = list_data[index];
    console.log(data);
    $.ajax_get({
      url: "/shopapi/cart/changeNum",
      data: {
        data: data
      },
      success: (res) => {
        console.log(res);
      },
    })
  },
  // 点击删除
  remove_fun() {
    // 获取列表数据
    var list_data = this.data.list_data;
    var cart_ids = [];
    // 遍历每个商品
    list_data.forEach((obj) => {
      if (obj.xuan_zhong) {
        cart_ids.push(obj.id);
      }
    })
    if (cart_ids.length == 0) {
      $.ti_shi("请选择要删除的商品");
      return false;
    }
    cart_ids = JSON.stringify(cart_ids);
    $.ajax_post({
      url: "/shopapi/cart/delete",
      data: {
        cart_ids: cart_ids,
      },
      success: (res) => {
        $.ti_shi(res.data.msg);
        this.setData({
          quan_xuan: false,
          xuan_zhong_number: 0,
        })
        // 获取用户的购物车
        this.get_shop_cart();
      }
    })
  },
  // 点击立即购买时触发
  buy_fun() {
    // 获取列表数据
    var list_data = this.data.list_data;
    var goods_arr = [];
    var ti_shi = false;
    // 遍历每个商品
    list_data.forEach((obj) => {
      if (obj.xuan_zhong) {
        var ku_cun = obj.store_count;
        if (ku_cun) {
          goods_arr.push(obj);
        } else {
          ti_shi = true;
        }
      }
    })
    if (ti_shi) {
      $.ti_shi("请删除没有库存商品，然后再试！");
      return false;
    }
    if (goods_arr.length == 0) {
      $.ti_shi("请选择要购买的商品");
      return false;
    }
    // 存储选中的商品
    getApp().data.buy_goods = goods_arr;
    // 跳转到订单
    $.open("/pages/gou_wu_che/ding_dan/ding_dan");
    console.log(goods_arr);
  },
  // 自定义函数   结束
  // 生命周期函数--监听页面隐藏
  onHide: function() {

  },
  // 生命周期函数--监听页面卸载
  onUnload: function() {

  },
  // 页面相关事件处理函数--监听用户下拉动作
  onPullDownRefresh: function() {

  },
  // 页面上拉触底事件的处理函数
  onReachBottom: function() {

  },
  // 用户点击右上角分享
  // onShareAppMessage: function() {

  // }
})